home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung / Power-Programmierung (Tewi)(1994).iso / magazine / progjour / 1989 / 05 / pubclass.h < prev    next >
C/C++ Source or Header  |  1989-06-12  |  1KB  |  51 lines

  1. typedef int (*funcp)();
  2. typedef struct METH_T {
  3.     int    msg;
  4.     funcp  procc;
  5.     struct METH_T near *next;
  6.     } METH_TABLE;
  7.  
  8. #define MAX_METHS 32    /* must be multi of 2 */
  9. typedef struct class_def {
  10.     METH_TABLE near *tbl;
  11.     char       *name;
  12.     int        size;
  13.     struct class_def  *super;
  14.     METH_TABLE near *hash[MAX_METHS];
  15.      void        *array;
  16.      void        *stack;
  17.     } CLASS_DEF;
  18.  
  19. typedef void *Obj;
  20. void *send(Obj,int,...);
  21. void *sendSuper(CLASS_DEF *,int,...);
  22. #define RSend      (void *)send
  23. #define RSendSuper (void *)sendSuper
  24. #define Send       (int)send
  25. #define SendSuper  (int)sendSuper
  26.  
  27. #define Nil (void *)0
  28. Obj New( CLASS_DEF near * );
  29. #define New(x) New(&x)
  30.  
  31.  
  32. /*Class Names*/
  33. extern CLASS_DEF near OtherDataTwll;
  34. extern CLASS_DEF near MyDataTwll;
  35. extern CLASS_DEF near DataTwll;
  36. extern CLASS_DEF near Twll;
  37. extern CLASS_DEF near TwllHead;
  38. extern CLASS_DEF near ObjRoot;
  39.  
  40. /*Messages*/
  41. #define SetA               10
  42. #define Print               9
  43. #define SetX                8
  44. #define SendAll             7
  45. #define AddItem             6
  46. #define ObjPrintName        5
  47. #define ObjKill             4
  48. #define QQSize              3
  49. #define Replicate           2
  50. #define ObjInit             1
  51.